//Json数组工具类
JsonArrayUtils = {

    /**
     * 移除数组中的元素
     * @param array 数组对象
     * @param keyfield 索引字段
     * @param key 索引值
     */
    remove: function (array, keyfield, key) {
        for (var i = 0; i < array.length; i++) {
            if (array[i][keyfield] == key) {
                array.splice(i, 1);
                return true;
            }
        }

        return false;
    }
}

//算法工具类
AlgorithmsUtils = {

    /**
     * 将简单数据转换为树结构数据
     * @param data 数据
     * @param idKey 主键字段
     * @param pIdKey 父主键字段
     * @returns {Array}
     */
    simpleToTree: function (data, idKey, pIdKey) {
        if (!idKey || idKey == "" || !data) return [];

        var r = [];
        var tmpMap = {};
        for (var i = 0, l = data.length; i < l; i++) {
            tmpMap[data[i][idKey]] = data[i];
        }
        for (var i = 0, l = data.length; i < l; i++) {
            var p = tmpMap[data[i][pIdKey]];
            if (p && data[i][idKey] != data[i][pIdKey]) {
                if (!p.children) {
                    p.children = [];
                }
                var children = p.children;
                children.push(data[i]);
            } else {
                r.push(data[i]);
            }
        }
        return r;
    }
}